#ifndef CARDS_H
#define CARDS_H

#include<QSet>
#include <card.h>
class Cards
{
public:
    enum Sortype{Asc, Desc, Nosort};
    Cards();
    explicit Cards(const Card& card);
    // 添加删除函数
    void add(const Card &card);
    void add(const Cards &cards);
    //一次性插入多个 数据 (操作符重载)
    Cards& operator <<(const Card& card);
    Cards& operator <<(const Cards& cards);
    
    
    
    // 删除函数
    void remove(Card &card);
    void remove(Cards &cards);
    
    //扑克牌数量
    int CardCount();
    // 是否为空
    bool cardisEmpty();
    // 清空扑克牌
    void clear();
    //最大点数
    Card::CardPoint maxPoint();
    //最小点数
    Card::CardPoint minPoint();
    //指定点数的牌的数量
    int pointCount(Card::CardPoint point);
    // 某张牌是否在集合中
    bool contains(const Card& card);
    bool contains(const Cards& cards);
    // 随机取出一张扑克牌
    Card takeRandomCard();
    //QVector<Card>
    CardList toCardList(Sortype type = Desc);


private:
    QSet<Card> m_cards;

};

#endif // CARDS_H
